fee502a00b6267ab7b68d9650b062a1246f412de,h2o-algos/src/test/java/hex/optimization/L_BFGS_Test.java,L_BFGS_Test,testArcene,#,103

Before Change


      beta[beta.length-1] = glmp.link(source.lastVec().mean());
      L_BFGS.Result r1 = lbfgs.solve(solver, beta.clone());
      lbfgs.setMaxIter(1000);
      L_BFGS.Result r2 = lbfgs.solve(solver, r1.coefs, r1.ginfo, new L_BFGS.ProgressMonitor());
      lbfgs = new L_BFGS();
      L_BFGS.Result r3 = lbfgs.solve(solver, beta.clone());
      assertEquals(r1.iter,20);

After Change


      glmp._alpha = new double[]{0};
      dinfo = new DataInfo(Key.make(),source, valid, 1, false, DataInfo.TransformType.STANDARDIZE, DataInfo.TransformType.NONE, true);
      DKV.put(dinfo._key,dinfo);
      GradientSolver solver = new GLMGradientSolver(glmp, dinfo, 1e-5,source.lastVec().mean(), source.numRows());
      L_BFGS lbfgs = new L_BFGS().setMaxIter(20);
      double [] beta = MemoryManager.malloc8d(dinfo.fullN()+1);
      beta[beta.length-1] = glmp.link(source.lastVec().mean());
      L_BFGS.Result r1 = lbfgs.solve(solver, beta.clone(), solver.getGradient(beta),new L_BFGS.ProgressMonitor(){
        int _i = 0;
        public boolean progress(double [] beta, GradientInfo ginfo){
          System.out.println(++_i +":" + ginfo._objVal);
          return true;
        }
      });
      lbfgs.setMaxIter(50);
      final int iter = r1.iter;
      L_BFGS.Result r2 = lbfgs.solve(solver, r1.coefs, r1.ginfo, new L_BFGS.ProgressMonitor(){